/*
2017/2/17 方程的自然数解2-衍生
本题的描述和昨天一样，就不重复了。
只是对于解有以下两点要求：
1）所有的xi值必须是偶数。
2）xi值不严格单调递增的。即x1<=x2<=..<=xn
注意：输入的m必须是偶数。主要目的是让大家把昨天讲解的方法，巩固一下。
*/

#include <iostream>
#include <list>

using namespace std;

int coutX(int m,int n,int j);

int count = 0;
list<int> li;

int main(void) {

  int m,n;
  cin >> m >> n;

  coutX(m,n,0);

  return 0;
}

int coutX(int m,int n,int j)
{
   if(n==1)
   {
     if(m%2 !=0 || m<j) return 0;
     for(list<int>::iterator l = li.begin();l!=li.end();l++)
     {
       std::cout << *l <<" " ;
     }
     cout << m << endl;
     count++;
     if(count >= 1000) return -1;
     return 0;
   }
   else
   {
     for (int i = j; i <= m ; i= i+2) {
       li.push_back(i);
       int re = coutX(m-i,n-1,i);
       li.pop_back();
      if(re == -1) return -1;

     }

   }
   return 0;
}
